package com.yonyou.pmclouds.siteinspection.rmiitf;

import com.yonyou.pmclouds.basecom.entity.PageObject;
import com.yonyou.pmclouds.basecom.exception.BusinessException;
import com.yonyou.pmclouds.inspectitem.entity.InspectItemVO;
import com.yonyou.pmclouds.siteinspection.entity.SiteInspectionListViewVO;
import com.yonyou.pmclouds.siteinspection.entity.SiteInspectionVO;

public interface SiteInspectionQuery{
    /**
     * 根据项目查询项目下面的所有的现场检查单据
     * @param pk_project
     * @return
     * @throws BusinessException
     */
    SiteInspectionListViewVO[] queryByProject(String pk_project) throws BusinessException;

    SiteInspectionListViewVO[] queryByBillTypeProject(String pkProject, String billType) throws BusinessException;

    /**
     * 根据现场检查主键查询
     * @param
     * @return
     * @throws BusinessException
     */
    SiteInspectionVO queryOne(String pk_siteinspection) throws BusinessException;
    /**
     * 根据检查项主键查询检查项详情
     * @param pk_inspectItem
     * @return
     * @throws BusinessException
     */
    InspectItemVO queryItemDetail(String pk_inspectItem) throws BusinessException;
    /**
     * 查询是否引用code基础数据
     * @param code
     * @param ids
     * @return
     * @throws BusinessException
     */
    boolean queryRefByIds(String code, String[] ids) throws BusinessException;

    /**
     * 根据条件查询现场检查
     *
     * @param creators
     * @param startDate
     * @param endDate
     * @param billStatus
     * @return
     * @throws BusinessException
     */
    PageObject<Object> queryByCondition(String[] pkProject,
                                         String billType,
                                         String[] creators,
                                         String startDate,
                                         String endDate,
                                         int[] billStatus,
                                         int pageStart,
                                         int pageSize) throws BusinessException;
}
